home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Programming Sound Cards
/
Programming Sound Cards.iso
/
sound_22
/
nohiss.doc
< prev
next >
Wrap
Text File
|
1995-01-01
|
23KB
|
690 lines
NOHISS: Digital Noise Reduction
Version 1.0
────────────────────────────────
(C) Copyright 1991 by Andy Hakim
All Rights Reserved
R E F E R E N C E M A N U A L
For a quick summary of options, type NOHISS at the dos prompt.
NOHISS version 1.0 Reference Manual
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
TABLE OF CONTENTS
ADDRESSES ............................................................. 1
SOFTWARE LICENSE ...................................................... 1
ABOUT NOHISS .......................................................... 2
FILE FORMATS .......................................................... 3
COMMAND LINE SYNTAX ................................................... 3
COMMAND LINE OPTIONS .................................................. 4
/? ................................................................ 4
/HELP ............................................................. 4
/NR=# ............................................................. 4
/SIZE=# ........................................................... 4
/RANGE=# .......................................................... 5
/MIN=# ............................................................ 5
/MAX=# ............................................................ 5
/[NO]FANCY ........................................................ 5
/[NO]OVER ......................................................... 5
/[NO]PROCESS ...................................................... 5
/[NO]PAUSE ........................................................ 6
/[NO]PLAY[I][O] ................................................... 6
/TIME=# ........................................................... 6
/PORT=# ........................................................... 6
/SAVE ............................................................. 6
/RESET ............................................................ 6
> NUL ............................................................. 6
COMMAND LINE EXAMPLES ................................................. 7
ERROR MESSAGES ........................................................ 8
SOURCE CODE ........................................................... 9
TRADEMARKS ............................................................ 9
REVISION HISTORY ...................................................... 9
NOHISS version 1.0 Reference Manual Page: 1
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
ADDRESSES
───────────────────────────────────────────────────────────────────────────
Comments, suggestions, or questions? You can contact me via:
US Mail │ Software Development
│ P.O. Box 70392
│ Houston, TX 77270-0392
│
Telephone │ (713) 880-3059
│
Electronic Mail │ st144@menudo.uh.edu
(Internet addresses) │ cosc12r2@jetson.uh.edu
│
Bulletin Board │ Sand's BBS
│ (713) 961-1604
│ 2400/9600/14400 baud, HST/v.32
│ Username: Andy Hakim
Thanks to Gene "Music Man" Pope for many helpful suggestions and testing.
Gene is an expert on digital sampling, and sound processing in general.
His address is cosc12ui@jetson.uh.edu on internet.
Another address I would like to mention is that of Aaron Wallace. He
originated the SND file format which is widely used by many programs.
His address is aaron@jessica.stanford.edu on internet.
SOFTWARE LICENSE
───────────────────────────────────────────────────────────────────────────
NOHISS version 1.0 is a FREE, public domain program. There is no
registration process or monetary fee required to use it.
You may freely distribute NOHISS to others as long as:
■ Only the original files are distributed
■ No changes are made to any files
■ No money is charged for the program
NOHISS and this documentation are (C) Copyright 1991 by Andy Hakim.
All Rights Reserved. The author of this program is not liable for any
damage caused by its use. By using this program, you agree to the
above conditions.
NOHISS version 1.0 Reference Manual Page: 2
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
ABOUT NOHISS
───────────────────────────────────────────────────────────────────────────
Nohiss reduces or removes background "noise" that is almost always present
when a recording is made on a Soundblaster card. Background noise is most
apparent when using a microphone, but is also present to some degree if you
use a direct input connection.
Graphically, "hisssssss" looks like this:
+128┌───────────────────────────────────────────────────────────────┐
A │ . Speech │
m │ . . . │
p │ . . . . │
l │ . . . . . . . . . . . Silence (nohiss) │
i 0│. . . . . . . . . . . . .......................│
t │ . . . . . │
u │ Hisssssssss . . . │
d │ . Speech │
e │ │
-128└───────────────────────────────────────────────────────────────┘
Time --->
NOHISS was designed to work on speech recordings. If you run NOHISS on
a digitized music (ie: rock and roll song) file, there will probably
be no improvement in quality. There is no fixed level of reduction
that works for all speech samples but by adjusting the command line
parameters you will generally end up with a better sounding sample.
One of the (good) side effects of NOHISS is that the output file will
probably compress (using a file compression program) tighter than the
original. Run DEMO.BAT to hear a sample of the before and after
versions of a speech sample.
Certainly, removing hiss from sound files is probably not going to appeal
to everyone... but there might be certain multimedia and presentation
applications where this could prove useful. This project started out
merely as an experiment, but after doing some tests I heard some dramatic
improvements in speech samples.
If you find nohiss useful, I would appreciate some feedback. This
will encourage me to continue supporting and enhancing this utility.
NOHISS version 1.0 Reference Manual Page: 3
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
FILE FORMATS
───────────────────────────────────────────────────────────────────────────
NOHISS supports the following digitized file formats:
.VOC - Soundblaster 8-bit VOICE format. Currently, only the unpacked
format is supported. Normally when you record a sound, it is
stored in an unpacked state. The Soundblaster/PRO Stereo sound
format it not supported at this time. If the VOC file contains
special blocks such as markers, text information, they will
automatically be copied without change.
.SND - This is raw 8-bit data with header information. There are two
basic types of SND files. Nohiss recognizes both versions and
retains proper header information.
.SOU - Raw 8-bit digital data. No header information. The extension
may not be SOU in all cases.
Note: Although you can specify different extensions for the input and
output files, nohiss will not convert between formats. The
output file will remain the same format as the input file
regardless of the file extension.
COMMAND LINE SYNTAX
───────────────────────────────────────────────────────────────────────────
Syntax:
NOHISS <inputfile[.ext]> [outputfile[.ext]] [options]
<inputfile[.ext]>
Name of the file that requires processing. Nohiss will automatically
hunts for .VOC, .SND, and .SOU files if no extension is specified.
You may precede this by a qualified DOS pathname. Wildcards are
not allowed.
[outputfile[.ext]]
Name of the output file. If no extension is given, an appropriate
extension will be added depending on the input file format. If no
output file is specified, a temporary file is created, then deleted
when the program is finished. This temporary file is useful during
playback, but becomes redundant if you only want to process.
[options]
Options allow you to customize various settings. All options
can be saved directly to NOHISS.EXE by using /SAVE. This saves
you the trouble of typing each parameter on subsequent uses.
NOHISS version 1.0 Reference Manual Page: 4
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
COMMAND LINE OPTIONS
───────────────────────────────────────────────────────────────────────────
■ may be specified in any order
■ may be in upper or lower case
■ may not be abbreviated
■ may be preceded by slash (/) or minus (-)
■ must be separated by a space ( )
/? (or /HELP, or NOHISS with no options)
Displays the help screen and default options. The "defaults" column
reflects the settings that are current stored in nohiss.exe.
/NR=#
Noise reduction level, specified in a percentage ranging from
0 to 100. This is the factor by which a particular sample value
will be reduced. For example, if /NR=50 then a data value of -6
will be reduced by 50% yielding -3. Normally, this should be set
at 100 percent if the /RANGE is small. If you notice a sharp drop
of volume during silence periods, you can try reducing this value.
/SIZE=#
Minimum duration of hiss specified in samples. There must at least
be this many consecutive values falling in the hiss RANGE as a
requirement for reduction. It is necessary to have this restriction
because the endings of certain words (ex: THIS), often sound
similar to background noise. A small SIZE value (ex: 1) will cause
words to be clipped at the end. On the other hand, a very large
size value will cause no values to qualify for reduction. In terms
of time the size value is closely related to the sampling rate. For
example, a rate of 12000 hertz means that 12000 samples are taken
each second. Therefore, if you set /SIZE=12000 you are saying that
at least one second of continous hiss must be present before it is
reduced and any portions of hiss smaller than 1 second are ignored.
By /SIZE=# you are defining the horizontal width:
+128┌───────────────────────────────── ── ─
│ SIZE=11 .
│ ┌─────────┐ . .
│ . . .
│ . . . . . . . . . .
0│. . . . . . . . . . .
│ . . .
│ Hisssssssss . .
│ .
│
-128└───────────────────────────────── ── ─
As another example, suppose you specify /SIZE=1. In this case
any single sample that meets the /RANGE criterion will be reduced.
NOHISS version 1.0 Reference Manual Page: 5
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
/RANGE=#
Hiss spectrum, specified in volume units ranging from 0 to 254.
The program will automatically center this value around 0 (which
is considered silence.) Data values falling into this range are
reduced. The MIN and MAX values are recomputed every time you
use this option. Normally you want to keep this value just
large enough to catch the hiss and not affect the voice. If
you start hearing words being clipped, try reducing this value.
In my experience, a value less than 3 is pretty much useless
and a value greater than 50 takes away too much of the voice
data. This value varies from sample to sample.
Example: By /RANGE=#, you are specifying the vertical width:
+128┌──────────────────────────────── ── ─
│ .
│ . .
+15 │ . .
┌> │ . . . . . . . . . .
RANGE=30 │ 0│. . . . . . . . . . .
└> │ . . .
-15 │ Hisssssssss . .
│ .
│ Voice
-128└──────────────────────────────── ── ─
/MIN=#
Hiss spectrum lower limit, ranging from -127 to +127. This gives
you precise control over the hiss spectrum.
/MAX=#
Hiss spectrum upper limit, ranging from -127 to +127. This gives
you precise control over the hiss spectrum.
/[NO]FANCY
Chooses between two types of screens. The fancy mode is only
available if EGA/VGA display is present. If you are using a
multitasking program such as Windows or Desqview turn off this
option. In general, if you start seeing weird characters on the
screen, turn off this option. Technical info for DV or Windows:
"direct screen writes" are used in FANCY mode, and BIOS writes
are used in NOFANCY mode.
/[NO]OVER
Turns on/off file overwrite confirmation. If set to /NOOVER, you
are prompted if an output file exists. If set to /OVER, output
files will be overwritten without any user confirmation.
/[NO]PROCESS
Turns on/off hiss processing. If you turn OFF processing, Nohiss
functions as a voc file player. This feature can be used to hear
differences between two files.
NOHISS version 1.0 Reference Manual Page: 6
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
/[NO]PLAY[I][O]
Specifies what should be played back. Use /NOPLAY if you do not
want to hear anything. Use /PLAYI to hear only the input file.
Use /PLAYO to hear only the output file. Use /PLAYIO to hear
both input and output files. Only VOC files can be played back,
and only Soundblaster and compatible cards (such as Thunderboard)
and supported at this time (anyone have a spare Adlib Gold I
could borrow for testing?)
/TIME=#
Specifies the duration of playback in seconds. For example, if
you set /TIME=5 then only the first 5 seconds of a file will be
played back. Setting this to 0 means there is no limit.
/PORT=#
Specifies the Soundblaster IO port address in hexadecimal notation.
By default, the SB is jumpered at 220, but you can set it from
210, 220... to 260. For example, /PORT=260 sets the port address
to 260 hexadecimal. You may want to use the /SAVE option to make
this setting permanent in NOHISS.EXE.
/SAVE
This causes all options specified on the command line to become
permanent. Option values are written to NOHISS.EXE bypassing
the need for configuration files. On subsequent uses, you do
not have to reenter command line options. For example,
NOHISS /POST=240 /SAVE /? saves the port number and noise
reduction level, then displays the help screen. Filenames are
not saved.
/RESET
Restores factory default settings. These settings are automatically
written to NOHISS.EXE.
> NUL
This is not really part of Nohiss, but it is a very handy DOS
redirection command that can be used to redirect any screen
output to a "nul" device - a block hole sort of. You can use this
redirection technique if you do not want anything displayed on the
screen. You may also use any valid dos device (ie: prn) or filename
in place of NUL. This must be specified as the last option on the
command line. One reason why you may want to use this might be if
you use Nohiss as a VOC file player. Something like:
NOHISS /NOPROCESS /TIME=2 HELLO.VOC > NUL
NOHISS version 1.0 Reference Manual Page: 7
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
COMMAND LINE EXAMPLES (assuming factory default options)
───────────────────────────────────────────────────────────────────────────
C:\NOHISS SAMPLE.VOC OUTPUT.VOC
The file named sample.voc is processed and its result sent to
output.voc. Both files are played back.
...........................................................................
C:\NOHISS SAMPLE.VOC OUTPUT.VOC /PLAYO /TIME=5
After processing, only the output file (in this case output.voc)
will be played back. The playback stops after 5 seconds.
...........................................................................
C:\NOHISS SAMPLE.VOC /PLAYO
After processing, only the output file (in this case a temporary
file) will be played back. The temporary file is erased.
...........................................................................
C:\NOHISS SAMPLE.VOC OUTPUT.VOC /NOPLAY
File will be processed, but NOT played back.
...........................................................................
C:\NOHISS SAMPLE.VOC /NOPROCESS
File will not be processed, only played back.
...........................................................................
C:\NOHISS SAMPLE OUTPUT /RANGE=10 /SIZE=100
RANGE is set to 10, and SIZE is set to 100 while processing.
...........................................................................
C:\NOHISS /RANGE=10 /SIZE=100 /SAVE
The RANGE and SIZE parameters are permanently saved to nohiss.exe.
If you use the /SAVE option it is not mandotary to specify a
filename.
...........................................................................
C:\NOHISS /RESET /?
The original factory settings are restored and saved to nohiss.exe.
The "/?" option will display the new settings.
...........................................................................
C:\NOHISS SAMPLE OUTPUT /NR=75 /PLAYO /NOPAUSE /SIZE=10 /RANGE=5 /OVER
This will set the noise reduction level to 75%, set the range
to 5 units, set the size to 10 samples, process the file
overwriting OUTPUT.VOC if it exists, play the output file,
and not pause after playing.
NOHISS version 1.0 Reference Manual Page: 8
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
ERROR MESSAGES
───────────────────────────────────────────────────────────────────────────
Error messages are reported on the screen as well as in the ERRORLEVEL
system variable in DOS. A successful run will set ERRORLEVEL to 0.
1: INVALID COMMAND LINE OPTION
You have entered an incorrect parameter on the command line.
2: INPUT FILE NOT FOUND
Cannot find the input file.
3: VOC FILE COMPRESSED
The voc file contains a packed (compressed) block. Nohiss cannot
process these types of files (along with most other voc utilities!)
4: VOC FILE CORRUPT/UNSUPPORTED FORMAT
The voc file contains and invalid block header or the file is corrupt.
Check to see if other utilities can read this file.
5: FILE READ ERROR
An error occured during reading this file. Check to see if the file
is accessable by other programs.
6: FILE WRITE ERROR/DISK FULL?
Most likely, you are out of disk space on the output drive. You must
have at least as much space as the input file.
7: OUTPUT FILE SAME AS INPUT FILE
You must specify a different output file than the input file.
8: OPTION VALUE OUT OF BOUNDS
The option does not have the correct range value.
9: CANNOT ACCESS PROGRAM FILE
The program could not write to NOHISS.EXE. Maybe the disk is
write protected, or you do not have write privilege on your network.
8: SOUNDBLASTER PLAYBACK ERROR
An error occurred while playing a VOC file, bad format.
9: SOUNDBLASTER INTERRUPT ERROR
The Soundblaster is not configured correctly. Check to see if it works
with other software.
10: SOUNDBLASTER NOT INSTALLED OR WRONG IO PORT
The Soundblaster is not installed in your machine, or the IO port base
address is set incorrectly. You can modify the IO base port address
by using the /PORT=# command, where # can range from 210 to 260 (hex).
Note: This has been tested successfully with Soundblaster v1.5.
NOHISS version 1.0 Reference Manual Page: 9
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
SOURCE CODE
───────────────────────────────────────────────────────────────────────────
NOHISS was written using Borland C++ v2.0. If you are interested in a
copy of the source code, contact me at the addresses listed at the start
of this document. If you have information on the decompression algorithms
used by the Soundblaster, I am interested! Let me know.
TRADEMARKS
───────────────────────────────────────────────────────────────────────────
Borland C++ is a trademark of Borland International.
Soundblaster is a trademark of Creative Labs, Inc.
REVISION HISTORY
───────────────────────────────────────────────────────────────────────────
October 17, 1991 Version 1.0 Initial Release